package cn.han.oop;

import java.util.Arrays;

//本类用于测试构造方法
public class TestConstructor {
    public static void main(String[] args) {
        //4.创建Person类的对象进行测试
        /*1.每次new（实例化）对象时，都会自动触发对应类的构造方法
        * 2.每一个类都会默认存在一个没有参数的构造方法
        * 3.构造方法的格式：没有返回值类型并且与类名同名的方法
        * 4.每次创建对象时，都会执行构造方法
        * 构造方法就是用来创建对象的
        * 如果提供其他的构造函数，默认的无参构造会被覆盖
        * 手动提供无参构造，才能不传参数，也能创建对象*/
        Person person = new Person();
        System.out.println(person.address);
        System.out.println(person.age);
        System.out.println(person.name);
        person.eat();
        //创建Person类的第二个对象
        Person person1 = new Person("泡泡",25,"老师");

    }

}

//1.创建Person类，用来描述人这一类事物
class Person {
    //2.属性--成员变量
    String name;
    int age;
    String address;
    public Person(){
        System.out.println("我是无参构造");
        name = "泡泡:";
    }
    //创建本类的含参构造

    public Person(String name) {
        this.name = name;
    }

    //全参构造
    public Person(String name, int age, String address) {
        //局部变量name的值赋值给this指定的成员变量name
        this.name = name;
        this.age = age;
        this.address = address;
        System.out.println("我是含参构造");
    }

    //3.功能--方法
    public void eat() {
        System.out.println("\t"+"干饭人，干饭魂，干饭人吃饭得用盆！" +
                "\n"+"\t"+"抽刀断水水还流，唯有干饭解千愁！");
    }

}